package br.com.bb.cslsp.modelo.funcionario;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.NaturalId;

@Entity
@Table(schema = "global")
@NamedQueries({
		@NamedQuery(name = "Funcionario.buscaPorPrefixoLotacao", query = "select f from Funcionario f where f.prefixoLotacao = :prefixoLotacao order by f.nome"),
		@NamedQuery(name = "Funcionario.buscaPorPrefixoDependencia", query = "select f from Funcionario f where f.prefixoDependencia = :prefixoDependencia order by f.nome"), })
public class Funcionario implements Serializable {

	private static final long serialVersionUID = 1L;

	public static String BUSCA_POR_PREFIXO_LOTACAO = "Funcionario.buscaPorPrefixoLotacao";
	public static String BUSCA_POR_PREFIXO_DEPENDENCIA = "Funcionario.buscaPorPrefixoDependencia";

	@Id
	@Column(length = 8)
	private String chave;

	@NaturalId
	@Column(length = 8)
	private String matricula;

	@Column(length = 40)
	private String nome;

	@Column(length = 11)
	private String cpf;

	@Temporal(TemporalType.DATE)
	private Date dataNascimento;

	@Column(length = 1)
	private int sexo;

	@Column(length = 1)
	private int estadoCivil;

	@Column(length = 5)
	private String codigoSetor;

	@Column(length = 2)
	private String codigoInstrucao;

	@Column(length = 5)
	private int codigoComissao;

	@Column(length = 3)
	private String codigoSituacao;

	@Temporal(TemporalType.DATE)
	private Date dataSituacao;

	@Column(length = 4)
	private int prefixoDependencia;

	@Column(length = 4)
	private int prefixoLotacao;

	public String getChave() {
		return chave;
	}

	public void setChave(String chave) {
		this.chave = chave;
	}

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public int getSexo() {
		return sexo;
	}

	public void setSexo(int sexo) {
		this.sexo = sexo;
	}

	public int getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(int estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public String getCodigoSetor() {
		return codigoSetor;
	}

	public void setCodigoSetor(String codigoSetor) {
		this.codigoSetor = codigoSetor;
	}

	public String getCodigoInstrucao() {
		return codigoInstrucao;
	}

	public void setCodigoInstrucao(String codigoInstrucao) {
		this.codigoInstrucao = codigoInstrucao;
	}

	public int getCodigoComissao() {
		return codigoComissao;
	}

	public void setCodigoComissao(int codigoComissao) {
		this.codigoComissao = codigoComissao;
	}

	public String getCodigoSituacao() {
		return codigoSituacao;
	}

	public void setCodigoSituacao(String codigoSituacao) {
		this.codigoSituacao = codigoSituacao;
	}

	public Date getDataSituacao() {
		return dataSituacao;
	}

	public void setDataSituacao(Date dataSituacao) {
		this.dataSituacao = dataSituacao;
	}

	public int getPrefixoDependencia() {
		return prefixoDependencia;
	}

	public void setPrefixoDependencia(int prefixoDependencia) {
		this.prefixoDependencia = prefixoDependencia;
	}

	public int getPrefixoLotacao() {
		return prefixoLotacao;
	}

	public void setPrefixoLotacao(int prefixoLotacao) {
		this.prefixoLotacao = prefixoLotacao;
	}
	
	

}
